{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基于python的sklearn模块中的API创建模拟数据，并进行Adaboost API进行数据分类开发测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "\n",
    "from sklearn.ensemble import AdaBoostClassifier\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.datasets import make_gaussian_quantiles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## 设置属性防止中文乱码\n",
    "mpl.rcParams['font.sans-serif'] = [u'SimHei']\n",
    "mpl.rcParams['axes.unicode_minus'] = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## 创建数据\n",
    "X1, y1 = make_gaussian_quantiles(cov=2.,\n",
    "                                 n_samples=200, n_features=2,\n",
    "                                 n_classes=2, random_state=1)#创建符合高斯分布的数据集\n",
    "X2, y2 = make_gaussian_quantiles(mean=(3, 3), cov=1.5,\n",
    "                                 n_samples=300, n_features=2,\n",
    "                                 n_classes=2, random_state=1)\n",
    "\n",
    "X = np.concatenate((X1, X2))\n",
    "y = np.concatenate((y1, - y2 + 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AdaBoostClassifier(algorithm='SAMME.R',\n",
       "          base_estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=1,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_split=1e-07, min_samples_leaf=1,\n",
       "            min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "            presort=False, random_state=None, splitter='best'),\n",
       "          learning_rate=1.0, n_estimators=200, random_state=None)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#构建adaboost模型\n",
    "bdt = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1),\n",
    "                         algorithm=\"SAMME.R\",\n",
    "                         n_estimators=200)\n",
    "\n",
    "bdt.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "plot_step = 0.02\n",
    "x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
    "y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),\n",
    "                     np.arange(y_min, y_max, plot_step))\n",
    "\n",
    "#预测\n",
    "Z = bdt.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "#设置维度\n",
    "Z = Z.reshape(xx.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAFgCAYAAACmDI9oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlFX7wPHvMIis4oKGoohpuaThQq7waob1qpnWa5i5\nVSpm5lZabmmZqWn9snyxXEpbzCWXegsKJUHBJUMT19xxB0EWZWdmzu8PmpGBGQREEbk/1+WV88zz\nnDnPYGduztznPhqllEIIIYQQQggBgE15d0AIIYQQQoh7iQTIQgghhBBC5CMBshBCCCGEEPlIgCyE\nEEIIIUQ+EiALIYQQQgiRjwTIoszdb4VRcnNzy7sLQgghrLD0maPT6cqhJ+J+IgGyMJOUlMTVq1cB\n2L59OydOnLB67vfff8/+/fsBGDNmDKtXrwbgrbfeYs2aNWbnKqUYOHAgly9fNjs+YsSIQufea558\n8kl+/vnnYp371FNPcfr06WK3/dVXX3Hp0qXSdk0IISq9Dz/8kDlz5pgep6am0rhxY7Kzs4t1fZ8+\nfTh79qzF5zIyMvDz8+PixYumY3Fxcfj7+5OZmWn1Gr1eb3qcnZ1d7L6Ie4cEyGVs0KBBvPnmmxaf\n8/LyIjY21uq17777Ls7OztStWxcvLy9WrVp1ZzpZhPnz5/Puu+8CcOHCBaZNm2b1XGdnZ/7zn/+Q\nkJBAlSpVqFq1KkeOHGHt2rX4+fmZnbtjxw6OHj3KAw88YHbczs4OOzu7Qm3Hx8djb2+Pr68vvr6+\n1KlTh1atWuHr60urVq14/vnni3U//fv3p3HjxjRr1oxmzZrx4IMPmj328vJi7dq1AOzZs4cmTZrQ\nrFkzmjZtSmBgIN9//z3bt2/no48+olu3bixevNjUdk5ODp06daJr165069aNbt26ER0dzdNPP216\n7Ovry+zZs03X6HQ6XnjhBdNgO2vWLNLS0op1L0YXLlzgqaeeokGDBvTo0cNs4F69ejX+/v48//zz\nnDx5sljtrVmzhh49epgep6en069fP+rUqcNrr71mOv7888/j5+eHTqfj+vXr/PbbbyXqtxDi3lWR\nP7sOHjyIr6+v6XFkZCTdu3enatWqZucFBwfz9ttvF7r+9OnT2NgUDoeUUowZM4YTJ07wzDPP0L59\ne+bMmcObb77J0aNH6dKlC507d8bb25vz58+brvvwww955ZVXTN8+rlmzhmeffdbUZk5OTpnct7jD\nlChT7u7uqnXr1hafa9iwoTp79qzVa2fNmqXefvttpZRSFy9eVG5ubiohIaFM+/fXX3+pzZs3W3zu\n0qVL6oEHHlCXLl1SSiml1+tV69at1XfffWd2nsFgUFlZWcpgMKhx48apnTt3qvHjx6sffvhBvffe\ne2rt2rVKr9errKws0zU9e/ZUISEh6uDBgyosLEy1adNGdenSRdWtW1c1b95cdenSRXl7e6sdO3Yo\npZS6du2aatiwoen6QYMGqfDwcKWUUuHh4erFF18s1f3PmjVLffLJJxafMxgMSqfTqQcffFBlZmaq\nffv2qUaNGqm///5b6XQ61alTJ9N7Y7Rv3z7TfX711Vdq4sSJKiMjw/T877//rpKTk82uWbJkiWrS\npImKj49XtWrVMju/OHr06KG++OILpZRSixYtUv7+/koppSIjI1W7du3U0aNH1WeffaY6dux4y7au\nX7+uGjRooA4dOmQ6NmnSJPXSSy8pvV6vRo0apdatW6eSk5PVM888o8aNG6cOHDigVq5cqVJTU0vU\nbyHEvasifnbFx8crb29v5eTkpFq2bKm8vb3V2bNn1ZAhQ1TDhg1V48aNlaenp3rqqadM5zdo0EAt\nXbpUZWVlqYcffli1bt1a2dvbq0cffVS1bdtW9erVy9T+9OnT1QsvvKD0er1q1aqVysjIUDt27FBP\nPfWUMhgMytPTU6WkpJj1KS0tTXl4eKjw8HDl7e2t2rVrpxo0aKAeeOAB1a5dO9W2bVs1aNCgMn1v\nxJ1hW94B+v3kyJEjeHp6cvXqVRITE3Fzcyt1Wx4eHnh4eHD69OnbaqegAwcOEBERQb9+/Qo9N3Lk\nSMaOHUu9evUAsLGx4ZtvvqFbt25UrVqV/v37A3mzu/7+/ri4uKDVavnxxx85f/48oaGh2Nvb4+Tk\nxKeffkqDBg1Yt24d69atIzU1lccff5wePXowbNgwU2rG66+/jr+/v8X+xMXFmWYFTpw4QUxMDK6u\nrqSmpvLoo4+W2XtipNFo2LdvH506dcLe3p7MzEyeeuopRo0axY0bNzh79iwvvvgiNWrUYPPmzQAs\nXbqU5ORk5s6dy1dffcUPP/zAkCFD6N69O56enkycOJFNmzZRvXp1IG/WedSoUVSvXh1nZ2f0ej0O\nDg7F7mNOTg47d+7k119/BWDw4MG89dZbAFy/fp2lS5fSvHlz6tevb/omoCizZs2id+/etGzZ0nRs\n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\neV9PZWZmWp3VhLxATafT8emnn7JkyRKCg4N59913efDBBxk8eDB+fn7897//pWPHjlbbuB1vv/02\ner2el19+mb/++os333yTY8eOkZGRweDBg02D6AcffEBYWJjpvYK8nOCXX37ZLCjNzc1l5cqVprze\n0NBQFixYYGpn0KBB+Pn5Ub16dT777DMaNGhwyz5eu3aNNWvWmP0cwsPD+eKLL/jmm2/Ytm0b9evX\ntxocQ17N5m+++YbWrVtz6NAh/vzzT3x8fHjxxReZMGEC8+fPZ/r06bz44oum+4C8Af/GjRuF0mKE\nEBXP/fLZVdCHH36Io6Mj69atMwXI0dHRbNy40bSmIzU1lenTp7Nu3TomT57MvHnzmDp1qlk7/fr1\no3PnzvTs2ZOePXui1Wrp1asXXbt25fXXX2fkyJFF9iMiIoIzZ84UeY64R5VnCY37ib+/v1q1apXp\n8bx589TgwYPVK6+8ourUqaP+/e9/K3d3d3X27Fl19uxZ1bJlS1W3bl01duxY5ezsrI4fP65mzZql\nnJycVJ06dZS7u7uaNGmSMhgMSimlFixYoBo0aKAeeughFRISopTKK8P2xhtvqHr16qlHH31U7d27\nVymVV7qrT58+qnbt2qphw4Zq/fr1pn7l5OSovn37qjp16ihvb2/T8dzcXDVr1izVsmVLde3aNaVU\nXqm1BQsWWC1Jc+PGDfXpp5+qli1bqpMnT6pr166pJ554Qo0ZM0adPn3adN4777yjvL29Va1atVSz\nZs3Ul19+qaZPn668vLxUu3btVLt27VTDhg3VrFmzlFJK7dixQzVq1Eg999xzKi4uTiml1MCBA1VY\nWJhSSqn//e9/qnHjxsrPz08ppdTOnTvNSvPkvyeDwaC6du2qIiMjlVKFy7zl5uaalaObMWOG+vnn\nn1VYWJh69913lZeXl9LpdGrlypVq8eLFSimlHn74YSv/CpTq0qWLWcm0gv35+OOP1QMPPKCio6PN\njl++fFkdPHhQubq6FiqP5OPjo06ePGl2bPLkyab3yygzM1MNGDBA1alTRz322GPq4MGDSiml1q5d\nq0aNGlWoP+np6eqll15SdevWVfXq1VM//PCD6bm5c+eqli1bqnHjxqnc3FyllFKhoaHqwoULSiml\nnnnmGdWvXz+r74MQomKoyJ9dly9fVvb29srb29tU7u3EiRNKKaV0Op26fv26CgwMNJUq/eyzz9Sc\nOXOUUkolJSUpPz8/NXPmTKWUUufOnVPu7u5q1KhRKj4+XimVNzZ/8803qmHDhqbSmr169VInTpxQ\nR48eVZ07d1ZNmzZV48ePV9evX1dKKXX16lX16KOPqpycHLV8+fJC43TTpk2VTqdTer2+jH6C4k6R\nAFmonJwc5ePjo55++ml19epV0/G+ffuqzp07q3379pmdf/HiRfXEE08oLy8vNX36dLM6vzqdTgUF\nBakGDRqo3r17K71er/bu3at27typMjMzTedNmjRJrVy50vR4+fLlavr06UoppVJSUtTOnTvNXrN/\n//6mwdX4OsePH1dK5Q1i06ZNK3Rf8+fPVw8//LBq2rSp1T9NmjRRTz/9tOma33//3RSMfvLJJ+rH\nH39USim1f/9+tWfPHjVp0iQ1dOhQq+9l+/bt1f79+y0+d/ToUeXr61so2M3NzVVeXl6qUaNGavbs\n2VbbFkIIcdP169fV119/bXocGhpqqkscEhKihgwZolauXFkoGP3999+Vp6enmjp1qtnxCxcuKH9/\nf+Xk5KTOnz+v9u3bp7p3767++usv0zlPPPGEOnz4sOnxzz//bDbpcuHCBdW0aVM1YcIE1alTJ9Wl\nS5dCfzp06KCOHDlSpu+FKHsapSxsYi4qnaSkJGrWrFns8/fv34+3t7dZbnJ+er2ey5cvW00XuHHj\nBra2tiWqAWzN1atXSUlJMaUwCCGEENbEx8dz+PBhnnjiCYvPX7hwoVipbuL+JgGyEEIIIYQQ+UhB\nPiGEEEIIIfKRAFkIIYQQQoh87rkyby7Va1K7Xv1bnyiEELfp+tXLJCYmlnc3BHllvCzV1RVCiLIU\nGxtbrHH/nguQa9erzwerQ8q7G0KISuDjkf3KuwviH15eXkRHR5d3N4QQ9zkfH59inScpFkIIIYQQ\nQuQjAbIQQgghhBD5SIAshBBCCCFEPvdcDrIQ4s7TKgP1bNKw1+jLuyt3RZbSctngjF4jcwJCiPtf\nbm4uFy9eJCsrq7y7Um7s7e2pX78+VapUKdX1EiALUQnVs0nDo3ZNXKrXQKPRlHd37iilFDdSkiEh\niQuqWnl3Rwgh7riLFy/i4uKCl5fXfT/GW6KU4tq1a1y8eJFGjRqVqg2ZThGiErLX6CtFcAyg0Whw\nqV6j0syWCyFEVlYWtWrVqhRjvCUajYZatWrd1gy6BMhCVFKVaeCsTPcqhBAg497t3r8EyEKIe4pS\n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\nN3axoJD26KOPYu3atQCATz/9lMExEVGQ+Pe//42vv/4a48aNgyAImD17Nt59912cPXsWGzdutB7X\nq1cvXH311Vi0aBGqqqrw5ptvYv369fjzn/+Me++913qcSqXCV199hXfffRfnzp1D//79sWHDBmzb\nts16zN13342srCzcd999eOyxxzB16lR069YNd9xxB3bu3Ik777xTcq1xcXEYN24cxo0bx78jBIAZ\nZCIiIvKBK664AqtWrUJ9fT2effZZpKam4r777sNtt92G+++/H5999hnmzJmD2267DbNnz8bgwYMx\ne/Zs6HQ6nDx5EgBw4sQJXH311UhISIDZbMbs2bNRXV2Nuro6zJs3D7169cLixYvxz3/+03rdZ599\nFlFRUVi2bBmSk5Nx9uxZnDhxAuHh4fjqq6+QlpYGAHZt5GJjYzF06FAAsJZ3mEwma2aauh4GyERE\nROR1N910EwBg+fLlGDJkCHJzcwEA8fHxOHDgAN58801cvnwZc+fOxdKlSzFs2DBs3rwZJpMJK1eu\nxJkzZ7BmzRoMHDgQCQkJiIuLw4gRI6znf+SRR6z//uGHHwBY2r/NnDkT1157LQ4dOoT//Oc/ePLJ\nJ/GnP/0JV199NR599FF88MEH+MUvfoHm5mbU1dUhIyMD8fHxWLJkifV8X375JYxGIyZNmuT7J4qC\nEtu8ERERUadhNBoRFmbJ/4lZYjETLAgCVCpVIJdHIYIBMhERERGRDW7SIyIiIiKywQCZiIiIiMgG\nA2QiIiIiIhsMkImIiIiIbPz/8R5jMEQmUJIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2c6ec547eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 画图\n",
    "plot_colors = \"br\"\n",
    "class_names = \"AB\"\n",
    "\n",
    "plt.figure(figsize=(10, 5), facecolor='w')\n",
    "#局部子图\n",
    "plt.subplot(121)\n",
    "plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired) \n",
    "for i, n, c in zip(range(2), class_names, plot_colors):\n",
    "    idx = np.where(y == i)\n",
    "    plt.scatter(X[idx, 0], X[idx, 1],\n",
    "                c=c, cmap=plt.cm.Paired,\n",
    "                label=u\"类别%s\" % n)\n",
    "plt.xlim(x_min, x_max)\n",
    "plt.ylim(y_min, y_max)\n",
    "plt.legend(loc='upper right')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.title(u'AdaBoost分类结果,正确率为:%.2f%%' % (bdt.score(X, y) * 100))\n",
    "\n",
    "#获取决策函数的数值\n",
    "twoclass_output = bdt.decision_function(X)\n",
    "#获取范围\n",
    "plot_range = (twoclass_output.min(), twoclass_output.max())\n",
    "plt.subplot(122)\n",
    "for i, n, c in zip(range(2), class_names, plot_colors):\n",
    "#直方图\n",
    "    plt.hist(twoclass_output[y == i],\n",
    "             bins=20,\n",
    "             range=plot_range,\n",
    "             facecolor=c,\n",
    "             label=u'类别 %s' % n,\n",
    "             alpha=.5)\n",
    "x1, x2, y1, y2 = plt.axis()\n",
    "plt.axis((x1, x2, y1, y2 * 1.2))\n",
    "plt.legend(loc='upper right')\n",
    "plt.ylabel(u'样本数')\n",
    "plt.xlabel(u'决策函数值')\n",
    "plt.title(u'AdaBoost的决策值')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.subplots_adjust(wspace=0.35)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
